package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JOptionPane;
import javax.swing.JPanel;

import modelo.ModeloIngredientes;
import vista.VistaIngrediente;

public class ControladorIngredientes implements ActionListener {

	private VistaIngrediente vistaingrediente;
	private ModeloIngredientes modeloingredientes;
	
	public  void Limpiar(){
		vistaingrediente.getTxtCodigo().setText("");
		vistaingrediente.getTxtDescripcion().setText("");
		vistaingrediente.getTxtStock().setText("");
		vistaingrediente.getTxtCosto().setText("");
	}
	
	public ControladorIngredientes(VistaIngrediente vistaingrediente){
		super();
		this.vistaingrediente = vistaingrediente;
		this.modeloingredientes = new ModeloIngredientes();
		
	}
	
	public void mostrarInfoIngrediente(ModeloIngredientes ingredientes){
		
		vistaingrediente.getTxtCodigo().setText(ingredientes.getId());
		vistaingrediente.getTxtDescripcion().setText(ingredientes.getDescripcion());
		vistaingrediente.getTxtStock().setText(Integer.toString(ingredientes.getStock()));
        vistaingrediente.getTxtCosto().setText(Double.toString(ingredientes.getCosto()));
	}

	public void actionPerformed(ActionEvent ae) {

		String mensaje;
		ModeloIngredientes ingredienteEncontrado;
		
		int tipoMensaje=0;
			// BUSCAR
			if(ae.getActionCommand().equalsIgnoreCase(vistaingrediente.getBtnBuscar().getText())){

				ingredienteEncontrado = modeloingredientes.existe(vistaingrediente.getTxtCodigo().getText());
				if (ingredienteEncontrado == null){
					mensaje = "No se econtro el codigo";
					tipoMensaje = JOptionPane.INFORMATION_MESSAGE;
					JOptionPane.showMessageDialog(new JPanel(), mensaje,"Sistema la <<Guapa>>    Comida Rapida", tipoMensaje);
					Limpiar();
				}else{
					mostrarInfoIngrediente(ingredienteEncontrado);
				}
			}
		
		//guardar
		//if (ae.getSource()== vistaingrediente.getBtnGuardar()){
		
		if(ae.getActionCommand().equalsIgnoreCase(vistaingrediente.getBtnGuardar().getText())){
				
					//System.out.println("Acepto guardar");
					ModeloIngredientes encontrada;		
					ModeloIngredientes ingredienteActual = new ModeloIngredientes(vistaingrediente.getTxtCodigo().getText(), vistaingrediente.getTxtDescripcion().getText(), Integer.parseInt( vistaingrediente.getTxtStock().getText()), Double.parseDouble(vistaingrediente.getTxtCosto().getText()));
					
					encontrada = modeloingredientes.existe(ingredienteActual.getId());
									
					if (encontrada == null){
					
						modeloingredientes.registar(ingredienteActual);
						mensaje="Ingrediente ingresado exitosamente";
						tipoMensaje = JOptionPane.INFORMATION_MESSAGE;
						JOptionPane.showMessageDialog(new JPanel(), mensaje,"Sistema <<La Guapa>>    Comida Rapida",tipoMensaje);
						Limpiar();
					
					}else{
						
						mensaje = "El Ingrediente que esta intentando ingresar ya se encuentra registrado";
						tipoMensaje = JOptionPane.WARNING_MESSAGE;
						JOptionPane.showMessageDialog(new JPanel(), mensaje,"Sistema <<La Guapa>>    Comida Rapida",tipoMensaje);
						//mostrarInfoLibro(categoriaActual);
						
					}
			
		}
			
		if (ae.getActionCommand().equalsIgnoreCase(vistaingrediente.getBtnCancelar().getText())){
			
				Limpiar();
		}
		
		if (ae.getActionCommand().equalsIgnoreCase(vistaingrediente.getBtnModificar().getText())){
			
			modeloingredientes.setId(vistaingrediente.getTxtCodigo().getText());
			modeloingredientes.setDescripcion(vistaingrediente.getTxtDescripcion().getText());
			modeloingredientes.setStock(Integer.parseInt(vistaingrediente.getTxtStock().getText()));
			modeloingredientes.setCosto(Double.parseDouble(vistaingrediente.getTxtCosto().getText()));
		
		 ModeloIngredientes ingredienteActual = new ModeloIngredientes (vistaingrediente.getTxtCodigo().getText(), vistaingrediente.getTxtDescripcion().getText(), Integer.parseInt(vistaingrediente.getTxtStock().getText()), Double.parseDouble(vistaingrediente.getTxtCosto().getText()));
			
		 ingredienteEncontrado = modeloingredientes.existe(ingredienteActual.getId());
			
			if (ingredienteEncontrado == null){
				
				mensaje = "Error El Ingrediente No Fue Modificado";
				tipoMensaje = JOptionPane.WARNING_MESSAGE;
				Limpiar();					

			}else{
				modeloingredientes.modificar();
				mensaje="Ingrediente Modificado";
				tipoMensaje= JOptionPane.INFORMATION_MESSAGE;
				JOptionPane.showMessageDialog(new JPanel(),mensaje,"Sistema <<La Guapa>>    Comida Rapida",	tipoMensaje);
				Limpiar();
			}
		}
		
		//ELIMINAR
		if (ae.getActionCommand().equalsIgnoreCase(vistaingrediente.getBtnEliminar().getText())){
			
			modeloingredientes.setId(vistaingrediente.getTxtCodigo().getText());
			modeloingredientes.setDescripcion(vistaingrediente.getTxtDescripcion().getText());
			modeloingredientes.setStock(Integer.parseInt(vistaingrediente.getTxtStock().getText()));
			modeloingredientes.setCosto(Double.parseDouble(vistaingrediente.getTxtCosto().getText()));
			
			ModeloIngredientes ingredienteActual = new ModeloIngredientes (vistaingrediente.getTxtCodigo().getText(), vistaingrediente.getTxtDescripcion().getText(), Integer.parseInt(vistaingrediente.getTxtStock().getText()), Double.parseDouble(vistaingrediente.getTxtCosto().getText()));
			
			ModeloIngredientes categoriaEncontrada = modeloingredientes.existe(ingredienteActual.getId());
			
			if (categoriaEncontrada == null){
				mensaje = "Error Ingrediente no Eliminado";
				tipoMensaje = JOptionPane.WARNING_MESSAGE;
				Limpiar();					

			}else{
				modeloingredientes.eliminar();
				mensaje="Ingrediente Eliminado";
				tipoMensaje= JOptionPane.INFORMATION_MESSAGE;
				JOptionPane.showMessageDialog(new JPanel(),mensaje,"Sistema <<La Guapa>>    Comida Rapida",	tipoMensaje);
				Limpiar();
			}
		}
		
		
		if (ae.getActionCommand().equalsIgnoreCase(vistaingrediente.getBtnSalir().getText())){
			vistaingrediente.dispose();
		}
		
		// TODO Auto-generated method stub
	}
	
}

	